package swingxrcp.framework.client.swingx.data;

import java.io.Serializable;
import java.util.Map;

/**
 * TODO 数据模型
 *
 * @author Fengyiyun
 *
 */
public interface DataModel extends Serializable {

	/**
	 * 获取数据模型ID
	 *
	 * @return
	 */
	public String getID();

	/**
	 * 设置数据模型ID
	 *
	 * @param id
	 */
	public void setID(String id);

	/**
	 * 数据源文件(XML格式)
	 *
	 * @return
	 */
	public String getDataSource();

	/**
	 * 获取值对象,数据模型中的数据源对象
	 *
	 * @return
	 */
	public Object getValueObject();

	/**
	 * 设置值对象,数据模型中的数据源对象
	 *
	 * @param object
	 */
	public void setValueObject(Object object);

	/**
	 * 获取数据模型的域值对
	 *
	 * @return
	 */
	public Map<String, Object> getFieldValues();

	/**
	 * 设置数据模型的域值对
	 *
	 * @param fieldvalues
	 */
	public void setFieldValues(Map<String, Object> fieldvalues);

	/**
	 * 获取当前数据模型中的数据源对象所有的字段域名
	 *
	 * @return
	 */
	public String[] getFields();

	/**
	 * 设置当前数据模型中的数据源对象所有的字段域名
	 *
	 * @param fields
	 */
	public void setFields(String[] fields);

	/**
	 * 通过字段域名得到对应的值
	 *
	 * @param field
	 * @return
	 */
	public String getValue(String field);

	/**
	 * 设置字段域名的值
	 *
	 * @param field
	 * @param value
	 */
	public void setValue(String field, Object value);
}
